1. Field
Embodiments of the invention relate to the field of quality of service (QoS); and more specifically, to the mapping and propagation of QoS codes in a differentiated services domain.
2. Background
A differentiated services domain may consist of multiple diverse interconnected networks, each of which providing differentiated quality of service (QoS) treatment for different classes of traffic. Information included in packet headers defines the QoS treatment levels. For example, certain priority or drop-precedence values encoded within packet headers define the QoS treatment levels. For example, in an Ethernet frame header, 802.1P bits may define the QoS treatment level of the Ethernet frame. Similarly, in an ATM cell header, CLP (cell loss priority) bits may define the QoS treatment level of the ATM cell. In a frame relay packet, the discard eligible (DE) bits may define the QoS treatment level of the frame relay packet. In an IP packet header, differentiated services code point (DSCP) bits may define the QoS treatment level of the IP packet. In a multiprotocol label switching (MPLS) SHIM header, experimental (EXP) bits may define the QoS treatment level of the MPLS path.
As part of the differentiated services domain, a packet may be transported through multiple interconnected differentiated service clouds (e.g., network clouds that support differentiated services architecture), each providing QoS according to different policies resulting from service level and peering agreements. As a result, each of these differentiated service clouds may include multiple network elements (e.g., switches and routers) each of which may propagate and map QoS bits from a packet to an internal per-packet QoS descriptor. In addition, each of the network elements may propagate and map QoS bits from the internal per-packet QoS descriptor to the outgoing packet.
Thus, as a packet travels from one differentiated service cloud to another differentiated service cloud, the packet may be treated differently depending on particular service level and peering agreements. In order to change the QoS level, one prior art technique includes applying a specific mapping function to a QoS code obtained from a particular layer's protocol header. The resulting new value may be copied to an internal QoS descriptor of a network element. This new internal QoS value may then influence the packet's QoS treatment as it is processed and forwarded by the network element. However, a limitation of this prior art technique is that in regards to certain network elements, only a subset of the QoS codes may be accessible to apply the map from (i.e., only a subset of the packet's layers' QoS codes may be accessible in the packet processing data path). For example, if the network element is a layer 2 or MPLS device, and the packet received includes layer 3 information (e.g., DSCP bits in the IP header), the network element may not use the layer 3 bits as this information (i.e., layer 3) will not be processed by the layer 2 or MPLS device.
Additionally, another limitation of this prior art technique is that the network element may have access to the layer 2 or layer 3 QoS codes only in isolation for the duration of processing the respective layer. For example, if the device is a layer 3 device, the layer 2 QoS codes and the layer 3 QoS codes may become accessible at different times over the packet processing timeline. As packet's protocol headers are processed layer by layer, a layer 3 device processes the layer 2 portion of the packet before processing the layer 3 portion of the packet. The layer 2 QoS codes are available only during processing of the layer 2 portion of the packet and similarly, the layer 3 QoS codes are available only during processing of the layer 3 portion of the packet.
Thus, the above prior art technique has the disadvantage that another layer in the packet besides the layer that is currently being processed cannot be used to determine a QoS code to propagate to the QoS descriptor. In other words, QoS mappings are limited to the packet layer that is currently being processed. The prior art technique is incapable of changing QoS treatment levels based on QoS codes from different layers of the packet than the layer currently being processed. Additionally, this prior art technique is incapable of specifying that for the current QoS code value (i.e., the QoS code of the layer that is currently being processed) the final mapping (i.e., the QoS code that should be inserted into the internal QoS descriptor) should be based on a QoS code from a different layer's protocol header.
In addition to the above prior art technique, another prior art technique allows QoS codes stored in an internal QoS descriptor to be propagated to the packet header of the packet layer currently being processed. The packet may then be sent to subsequent network elements with this QoS code in the packet header thus influencing the packet's QoS treatment by subsequent network elements in the network. In addition to propagation, the QoS code in the QoS descriptor may be used as input to a specific mapping function the output of which is inserted into the packet header of the packet layer currently being processed. This modification of the packet's protocol headers may influence its QoS treatment by subsequent network elements in the network. However, a limitation of this prior art technique is that in regards to certain network elements, only a subset of the QoS codes may be accessible to apply the map from (i.e., only a subset of the packet's layers' QoS codes may be accessible in the packet processing data path). For example, if the network element is a layer 2 or MPLS device, the network element may not use the layer 3 information of the packet to determine the QoS code to insert into the layer 2 protocol header as the layer 3 information is not accessible.
Additionally, another limitation of this prior art technique is that the network element may have access to the layer 2 or layer 3 QoS codes only in isolation for the duration of processing the respective layer. For example, if the device is a layer 3 device, the layer 2 QoS codes and the layer 3 QoS codes may become accessible at different times over the packet processing timeline. As packet's protocol headers are processed layer by layer, a layer 3 device processes the layer 2 portion of the packet before processing the layer 3 portion of the packet. The layer 2 QoS codes are available only during processing of the layer 2 portion of the packet and similarly, the layer 3 QoS codes are available only during processing of the layer 3 portion of the packet.
Thus, the above prior art technique has the disadvantage that another layer in the packet besides the layer that is currently being processed cannot be used to determine a QoS code to propagate to that layer. In other words, QoS mappings are dependent on the packet layer that is currently being processed. The prior art technique is incapable of changing QoS treatment levels based on QoS codes from different layers of the packet than the layer currently being processed. Additionally, this prior art technique is incapable of specifying that for a particular QoS code value in the internal QoS descriptor the final mapping (i.e., the QoS code that should be propagated into the protocol header) should be based on a QoS code from a different layer's protocol header.